/***********************************************************
 *  CCoregbl.c
 *
 *  Created on: 2009/8/05
 *  Author: ト
 *  CopyRight: CBS tech
 *  役割り：CoreのグローバルRAMを宣言
 *  作り：新規
 ***********************************************************/
#include <stdarg.h>

#include "../coredef.h"
#include "../cc/cc.h"
VARSIZEINFO stVarSizeInfo[] =
{
	/* 変数型	ｱｸｾｽID		ｻｲｽﾞ(ﾃﾞﾌｫﾙﾄ)，変更有無		*/
	{ "char",			VARSIZE_CHAR,		1,	OFF		},
	{ "short",			VARSIZE_SHORT,		2,	OFF		},
	{ "int",			VARSIZE_INT,		4,	OFF		},
	{ "long",			VARSIZE_LONG,		4,	OFF		},
	{ "float",			VARSIZE_FLOAT,		4,	OFF		},
	{ "double",		VARSIZE_DOUBLE,		8,	OFF		},
	{ "longdouble",	VARSIZE_LONGDOUBLE,	8,	OFF		},
	{ "pointer",		VARSIZE_POINTER,	4,	OFF		},
	{ "far_pointer",	VARSIZE_FARPOINTER,	4,	OFF		},
	{ "near_pointer",	VARSIZE_NEARPOINTER,	2,	OFF		},
	{ "longlong",	VARSIZE_LONGLONG,	8,	OFF		},
	{ "wchar_t",	VARSIZE_WCHAR,	4,	OFF		},
	{ NULL,				VARSIZE_NONE,		0,	OFF		}
};

COREENVINFO stCoreEnvInfo = {

	0	,				/*	ulCallBackEvent:  コールしない		*/
	CPLKIND_UNKNOWN	,	/*	ulCplKind  不明		*/
	31  ,				/*	usMaxBitWidth　　1～最大値　（デフォールト：1~31）*/
	OPT_CHAR_SIGNED	,	/*	ucCharSign　*/
						/*  OPT_CHAR_UNSIGNED:符号なし整数、OPT_CHAR_SIGNED:符号付き整数 */
	OPT_BIT_BYTYPE	,	/*	ucBitSign
						 *  OPT_BIT_UNSIGNED：符号ビットでない、
						 *  OPT_BIT_SIGNED：符号ビット、
						 *  OPT_BIT_BYTYPE:定義型と同じ（デフォールト）		*/
	FALSE,				/* ucBitType
						 * FALSE  ビットフィールドの型はint,unsigned int, signed int に限る
						 * TRUE   すべての汎整数型でいい
						 */
	FALSE,				/* ucNearFar
						  FALSE　near,farポインタに対応しない
						  TRUE   near,farポインタに対応する
						 */
	OPT_SHIFT_ARITH,	/*ucShiftKind
	                      OPT_SHIFT_ARITH  算術シフト（デフォールト)
	                      OPT_SHIFT_LOGICAL 論理シフト
	                      */
	OPT_MODULO_BYDIVIDEND,/* ucModuloSign
						 * OPT_MODULO_SIGNED  　　マイナス
						 * OPT_MODULO_UNSIGNED　　プラス
						 * OPT_MODULO_BYDIVIDEND　被除数と同じ（デフォールト)
						 */
	FALSE,				  /*ucBreakPPNum
						   * TRUE   前処理数を分解
						   * FALSE　　前処理数を分解しない
						   */
	OPT_SHIFT_BITNUM_ALL,  /* ucShiftWhenOverflow
	                       * OPT_SHIFT_BITNUM_REMAINDER
	                       * OPT_SHIFT_BITNUM_ALL
	                       */
	OPT_SHIFT_NEG_2_UNSIGNED, /*ucShiftWhenNegative
							 * OPT_SHIFT_NEG_CHANGE_OP
							 * OPT_SHIFT_NEG_2_UNSIGNED
							 */
    FALSE,					/*ucCppComment
							 * TRUE  //コメントに対応
							 * FALSE　　//コメントに対応しない
							 */
	TRUE,   				/* ucCppResult
							 *TRUE  前処理結果を出力
							 *FALSE　前処理結果を出力しない
							 */
	FALSE,					/* ucSrcNameMcr
							 * TRUE  __BASE__マクロに対応
							 * FALSE　__BASE__マクロに対応しない
							 */
	FALSE,					/* ucFuncNameMcr
							 * TRUE  __FUNCTION__マクロに対応
							 * FALSE　__FUNCTION__マクロに対応しない
							 */
	FALSE,					/*ucDelConstExpr
							 * TRUE  定数式を定数に変更する
							 * FALSE　変更を行わない
							 */
	FALSE,					/*ucCompressExpr
							 * TRUE  式の演算順を変更しない限り、式情報を最小にする
							 * FALSE　式情報を削減しない
							 */
	FALSE,					/* ucBitByte_new_align
							 *TRUE ビットの後の非ビットメンバに新しい領域を割り付ける
							 *FALSE　ビットの領域に十分な領域がある場合、その後の非ビットメンバに
							 *　　　　新しい領域を割り付けない
							 */
	FALSE,					/* ucByteBit_new_align
							 * TRUE 非ビットの後のビットメンバに新しい領域を割り付ける
							 * FALSE　非ビットの後に十分な領域がある場合、その後の
							 * ビットメンバに新しい領域を割り付けない
	     					*/
	FALSE,                   /* ucBitBit_size_alignment
	                         * TRUE 定義型サイズの異なるビットメンバを同一の領域に詰めない。
	                         * FALSE　領域が十分な場合、定義型のサイズにかかわらず、同一領域に詰める
	                         */
    FALSE,                  /* ucBit_divide
                             * TRUE  ビットメンバは２つの領域を跨ることができる
                             * FALSE　ビットメンバは2つの領域を跨らない
                             */
	FALSE,  				/*ucBit_zero_self
							 * TRUE 0ビットのメンバの場合、さらにビットを詰めない領域を計算するときに、
							 * 　　　自分の定義型の境界調整数を使う。
							 * FALSE　ビットを詰めない領域を計算するときに、
							 * 　　　前の非0ビットメンバの定義型の境界調整数を使う。
							 */
	FALSE,  				/* ucBitBit_arrange_bysize
							 * TRUE 定義型のサイズの同じビットフィールドを一緒に詰め込む。
							 * FALSE 宣言の順によりビットフィールドを詰め込む。
							 */
	0,						/*
								最大境界調整数
							*/
	FALSE,					//UCHAR  ucC90;
	FALSE,					//UCHAR  ucC99;
	TRUE,					//UCHAR  ucGNU;
	TYPE_INT	,			/*	astEnumType
								char、signed char、unsigned char、short、unsigned short、
								int、unsigned int、long、unsigned long（ディフォルト：int）		*/
	TYPE_INT	,
	TYPE_UNSIGNED_LONG_LONG	,
	TYPE_UNSIGNED_INT  ,			/*  astSizeofType
								short、unsigned short、int、unsigned int、
								long、unsigned long（ディフォルト：unsigned int）		*/
	TYPE_INT				/*	astDiffPtrType
								short、int、long（ ディフォルト：int）		*/
};


AST gblSectionInfo = 0;
/* ENDOFFILE */
